Skip to content

Add ROS 2 Jazzy pixi TurtleBot3 diff-drive tuning tutorial#38

Draft
msadowski wants to merge 5 commits intomainfrom
cursor/ros2-jazzy-pixi-diffdrive-802c
Draft

Add ROS 2 Jazzy pixi TurtleBot3 diff-drive tuning tutorial#38
msadowski wants to merge 5 commits intomainfrom
cursor/ros2-jazzy-pixi-diffdrive-802c

Conversation

@msadowski
Copy link
Copy Markdown
Contributor

@msadowski msadowski commented Apr 13, 2026

Summary

  • add a new tutorial under ros/ros2_jazzy_turtlebot3_diffdrive_pixi for an end-to-end ROS 2 Jazzy + pixi workflow
  • include a headless TurtleBot3 Gazebo launch file and a live diff-drive calibration node focused on wheel modifier parameters
  • provide pixi tasks for simulation, calibration, teleop/commanding, MCAP bag recording, Foxglove bridge, and MCAP replay using foxglove_mcap_player
  • add helper scripts to clone/build foxglove_mcap_player and replay a user-selected MCAP file
  • register the tutorial in the repository root README.md (generated via .utils/generate_readme.py)

Details

This tutorial is designed around a practical loop:

  1. Start headless simulation (pixi run sim)
  2. Run live calibration (pixi run calibrate-sim)
  3. Record MCAP bag (pixi run bag-record)
  4. Replay with foxglove_mcap_player (pixi run mcap-play with MCAP_FILE=...)
  5. Calibrate replayed command stream live in Foxglove (pixi run calibrate-replay)

The calibration node exposes ROS parameters:

  • wheel_radius_multiplier
  • wheel_separation_multiplier
  • cmd_timeout

and pre-compensates Twist commands so these wheel geometry modifiers can be tuned live in Foxglove.

Notes

  • tutorial keeps generated artifacts out of git via local .gitignore (bags/, external/, __pycache__/)
  • foxglove_mcap_player is built from source because it is not available as a RoboStack Jazzy package
  • TurtleBot3 Jazzy Gazebo uses static SDF diff-drive wheel values; calibration is performed at runtime by parameterized command pre-compensation
Open in Web Open in Cursor 

cursoragent and others added 5 commits April 13, 2026 16:41
Co-authored-by: Mateusz Sadowski <msadowski@users.noreply.github.com>
Co-authored-by: Mateusz Sadowski <msadowski@users.noreply.github.com>
Co-authored-by: Mateusz Sadowski <msadowski@users.noreply.github.com>
Co-authored-by: Mateusz Sadowski <msadowski@users.noreply.github.com>
Co-authored-by: Mateusz Sadowski <msadowski@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants